#pragma once
#include "../Utilities/utilities.h"

class Shaders 
{
public:
	GLuint program, vertexShader, fragmentShader;
	char fileVS[260];
	char fileFS[260];
	GLint a_positon, a_uv, a_normal, a_binormal, a_tangent, a_color, u_World, u_MatrixMVP, u_Camera;

	GLint u_texture;
	GLint timeUniform;
	GLint cubeSampler;
	GLint uniformCameraPosition;
	GLint uniformObjectWorld;
	GLint uniformLightPosition;
	GLint uniformLightColor;//Diffcolor
	GLint uniformLightAmbient;
	GLint uniformLightSpecular;
	GLint uniformLightDirect;//for spot light

	//For Text Draw 
	GLint uniformColorText;

	//Control Attenuation
	GLint uniformA0;
	GLint uniformA1;
	GLint uniformA2;
	
	GLint dirtSampler;
	GLint rockSampler;
	GLint grassSampler;
	GLint blendSampler;

	GLint samples[10];
	int Init(char * fileVertexShader, char * fileFragmentShader);
	~Shaders();
};